#ifndef PROTREETHREAD_H
#define PROTREETHREAD_H

#include <QThread>
#include <QTreeWidgetItem>

class ProTreeThread : public QThread
{
    Q_OBJECT
public:

    // 要完成对项目的递归拷贝，父亲节点，根节点
    ProTreeThread(const QString& src_path,const QString& dest_path,int file_count,
                  QTreeWidgetItem* parent_item, QTreeWidgetItem* root_item,
                  QTreeWidget* self,QObject *parent = nullptr);
    ~ProTreeThread();


    void run();
    void CreateProTree(const QString& src_path,const QString& dest_path,int& file_count,
                       QTreeWidgetItem* parent_item, QTreeWidgetItem* root_item,
                       QTreeWidget* self,QTreeWidgetItem* pre_item);
signals:
    void SigUpdateProgress(int file_count);
    void SigFinishProgress(int file_count);

public slots:
    void SlotCancelImport();



public:
    // _src_path表示打开的文件夹路径，
    // _dist_path表示我们创建的项目路径，
    // _file_count表示文件数，用来和进度框交互，
    // _parent_item新创建节点的父节点，
    // _self表示QProTreeWidget对象，
    // _root表示新创建节点隶属于哪个根节点，便于后期做交互。
    // _bstop表示是否停止，如果为true则线程终止,
    // parent传递给父类构造函数，
    QString _src_path;
    QString _dest_path;
    int _file_count;
    QTreeWidgetItem* _parent_item;
    QTreeWidgetItem* _root_item;
    QTreeWidget* _self;
    bool _bstop;



};

#endif // PROTREETHREAD_H
